<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>File descriptor</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/File_descriptor"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-File_descriptor rootpage-File_descriptor skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">File descriptor</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<p>In <a href="Unix" title="Unix">Unix</a> and <a href="Unix-like" title="Unix-like">Unix-like</a> computer operating systems, a <b>file descriptor</b> (<b>FD</b>, less frequently <b>fildes</b>) is a process-unique identifier (<a href="Handle_(computing)" title="Handle (computing)">handle</a>) for a <a href="File_(computing)" class="mw-redirect" title="File (computing)">file</a> or other <a href="Input/output" title="Input/output">input/output</a> <a href="System_resource" title="System resource">resource</a>, such as a <a href="Pipe_(Unix)" class="mw-redirect" title="Pipe (Unix)">pipe</a> or <a href="Network_socket" title="Network socket">network socket</a>.
</p><p>File descriptors typically have non-negative <a href="Integer_(computer_science)" title="Integer (computer science)">integer</a> values, with negative values being reserved to indicate "no value" or error conditions.
</p><p>File descriptors are a part of the <a href="POSIX" title="POSIX">POSIX</a> <a href="Application_programming_interface" class="mw-redirect" title="Application programming interface">API</a>. Each Unix <a href="Process_(computing)" title="Process (computing)">process</a> (except perhaps <a href="Daemon_(computer_software)" class="mw-redirect" title="Daemon (computer software)">daemons</a>) should have three standard POSIX file descriptors, corresponding to the three <a href="Standard_streams" title="Standard streams">standard streams</a>:
</p>
<table class="wikitable">
<tbody><tr>
<th>Integer value
</th>
<th>Name
</th>
<th><style data-mw-deduplicate="TemplateStyles:r886049734">
/* start https://en.wikipedia.org/ */
.mw-parser-output .monospaced{font-family:monospace,monospace}
/* end https://en.wikipedia.org/ */
</style><span class="monospaced"><<a href="Unistd.h" title="Unistd.h">unistd.h</a>></span> symbolic constant<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</th>
<th><span class="monospaced"><<a href="Stdio.h" class="mw-redirect" title="Stdio.h">stdio.h</a>></span> file stream<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</th></tr>
<tr>
<td>0
</td>
<td><a href="Stdin" class="mw-redirect" title="Stdin">Standard input</a>
</td>
<td><span class="monospaced">STDIN_FILENO</span>
</td>
<td><span class="monospaced">stdin</span>
</td></tr>
<tr>
<td>1
</td>
<td><a href="Stdout" class="mw-redirect" title="Stdout">Standard output</a>
</td>
<td><span class="monospaced">STDOUT_FILENO</span>
</td>
<td><span class="monospaced">stdout</span>
</td></tr>
<tr>
<td>2
</td>
<td><a href="Stderr" class="mw-redirect" title="Stderr">Standard error</a>
</td>
<td><span class="monospaced">STDERR_FILENO</span>
</td>
<td><span class="monospaced">stderr</span>
</td></tr></tbody></table>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Overview">Overview</h2></div>
<p>In the traditional implementation of Unix, file descriptors index into a per-process <b><style data-mw-deduplicate="TemplateStyles:r1238216509">
/* start https://en.wikipedia.org/ */
.mw-parser-output .vanchor>:target~.vanchor-text{background-color:#b1d2ff}@media screen{html.skin-theme-clientpref-night .mw-parser-output .vanchor>:target~.vanchor-text{background-color:#0f4dc9}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .vanchor>:target~.vanchor-text{background-color:#0f4dc9}}
/* end https://en.wikipedia.org/ */
</style><span class="vanchor"><span class="vanchor-text">file descriptor table</span></span></b> maintained by the kernel, that in turn indexes into a system-wide table of files opened by all processes, called the <b><span class="vanchor"><span class="vanchor-text">file table</span></span></b>. This table records the <i>mode</i> with which the file (or other resource) has been opened: for reading, writing, appending, and possibly other modes. It also indexes into a third table called the <a href="Inode" title="Inode">inode table</a> that describes the actual underlying files.<sup id="cite_ref-bach_3-1" class="reference"><a href="#cite_note-bach-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> To perform input or output, the process passes the file descriptor to the kernel through a <a href="System_call" title="System call">system call</a>, and the kernel will access the file on behalf of the process. The process does not have direct access to the file or inode tables.
</p><p>On <a href="Linux" title="Linux">Linux</a>, the set of file descriptors open in a process can be accessed under the path <code>/proc/PID/fd/</code>, where PID is the <a href="Process_identifier" title="Process identifier">process identifier</a>. File descriptor <code>/proc/PID/fd/0</code> is <code>stdin</code>, <code>/proc/PID/fd/1</code> is <code>stdout</code>, and <code>/proc/PID/fd/2</code> is <code>stderr</code>. As a shortcut to these, any running process can also access <i>its own</i> file descriptors through the folders <code>/proc/self/fd</code> and <code>/dev/fd</code>.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p><p>In <a href="Unix-like" title="Unix-like">Unix-like</a> systems, file descriptors can refer to any <a href="Unix_file_type" class="mw-redirect" title="Unix file type">Unix file type</a> named in a file system. As well as regular files, this includes <a href="Directory_(file_systems)" class="mw-redirect" title="Directory (file systems)">directories</a>, <a href="Block_device" class="mw-redirect" title="Block device">block</a> and <a href="Character_device" class="mw-redirect" title="Character device">character devices</a> (also called "special files"), <a href="Unix_domain_socket" title="Unix domain socket">Unix domain sockets</a>, and <a href="Named_pipe" title="Named pipe">named pipes</a>. File descriptors can also refer to other objects that do not normally exist in the file system, such as <a href="Anonymous_pipe" title="Anonymous pipe">anonymous pipes</a> and <a href="Network_socket" title="Network socket">network sockets</a>.
</p><p>The FILE data structure in the <a href="Stdio" class="mw-redirect" title="Stdio">C standard I/O library</a> usually includes a low level file descriptor for the object in question on Unix-like systems. The overall data structure provides additional abstraction and is instead known as a <i>file <a href="Handle_(computing)" title="Handle (computing)">handle</a>.</i>
</p>
<div class="mw-heading mw-heading2"><h2 id="Operations_on_file_descriptors">Operations on file descriptors</h2></div>
<p>The following lists typical operations on file descriptors on modern <a href="Unix-like" title="Unix-like">Unix-like</a> systems. Most of these functions are declared in the <code><unistd.h></code> header, but some are in the <code><fcntl.h></code> header instead.
</p>
<div class="mw-heading mw-heading3"><h3 id="Creating_file_descriptors">Creating file descriptors</h3></div>
<ul><li><span class="monospaced"><a href="Open_(system_call)" title="Open (system call)">open</a>()</span></li>
<li><span class="monospaced">creat()</span><sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup></li>
<li><span class="monospaced">socket()</span></li>
<li><span class="monospaced">accept()</span></li>
<li><span class="monospaced">socketpair()</span></li>
<li><span class="monospaced">pipe()</span></li>
<li><span class="monospaced">epoll_create()</span> (Linux)</li>
<li><span class="monospaced">signalfd()</span> (Linux)</li>
<li><span class="monospaced">eventfd()</span> (Linux)</li>
<li><span class="monospaced">timerfd_create()</span> (Linux)</li>
<li><span class="monospaced">memfd_create()</span> (Linux)</li>
<li><span class="monospaced">userfaultfd()</span> (Linux)</li>
<li><span class="monospaced">fanotify_init()</span> (Linux)</li>
<li><span class="monospaced">inotify_init()</span> (Linux)</li>
<li><span class="monospaced">clone()</span> (with flag CLONE_PIDFD, Linux)</li>
<li><span class="monospaced">pidfd_open()</span> (Linux)</li>
<li><span class="monospaced">open_by_handle_at()</span> (Linux)</li>
<li><span class="monospaced">kqueue()</span> (BSD)</li>
<li><span class="monospaced">pdfork()</span> (kFreeBSD)</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Deriving_file_descriptors">Deriving file descriptors</h3></div>
<ul><li><span class="monospaced">dirfd()</span></li>
<li><span class="monospaced">fileno()</span></li></ul>
<div class="mw-heading mw-heading3"><h3 id="Operations_on_a_single_file_descriptor">Operations on a single file descriptor</h3></div>
<ul><li><span class="monospaced"><a href="Read_(system_call)" title="Read (system call)">read</a>(), <a href="Write_(system_call)" title="Write (system call)">write</a>()</span></li>
<li><span class="monospaced">readv()</span>, <span class="monospaced">writev()</span></li>
<li><span class="monospaced">pread()</span>, <span class="monospaced">pwrite()</span></li>
<li><span class="monospaced">recv()</span>, <span class="monospaced">send()</span></li>
<li><span class="monospaced">recvfrom()</span>, <span class="monospaced">sendto()</span></li>
<li><span class="monospaced">recvmsg()</span>, <span class="monospaced">sendmsg()</span> (also used for sending FDs to other processes over a Unix domain socket)</li>
<li><span class="monospaced">recvmmsg()</span>, <span class="monospaced">sendmmsg()</span></li>
<li><span class="monospaced">lseek()</span>, <span class="monospaced">llseek()</span></li>
<li><span class="monospaced"><a href="Stat_(system_call)" title="Stat (system call)">fstat()</a></span></li>
<li><span class="monospaced">fstatvfs()</span></li>
<li><span class="monospaced">fchmod()</span></li>
<li><span class="monospaced">fchown()</span></li>
<li><span class="monospaced">ftruncate()</span></li>
<li><span class="monospaced">fsync()</span></li>
<li><span class="monospaced">fdatasync()</span></li>
<li><span class="monospaced">fdopendir()</span></li>
<li><span class="monospaced">fgetxattr()</span>, <span class="monospaced">fsetxattr()</span> (Linux)</li>
<li><span class="monospaced">flistxattr()</span>, <span class="monospaced">fremovexattr()</span> (Linux)</li>
<li><span class="monospaced">statx</span> (Linux)</li>
<li><span class="monospaced">setns</span> (Linux)</li>
<li><span class="monospaced">vmsplice()</span> (Linux)</li>
<li><span class="monospaced">pidfd_send_signal()</span> (Linux)</li>
<li><span class="monospaced">pdkill()</span> (kFreeBSD)</li>
<li><span class="monospaced">waitid()</span> (with P_PIDFD ID type, Linux)</li>
<li><span class="monospaced">fdopen()</span> (stdio function:converts file descriptor to FILE*)</li>
<li><span class="monospaced">dprintf()</span> (stdio function: prints to file descriptor)</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Operations_on_multiple_file_descriptors">Operations on multiple file descriptors</h3></div>
<ul><li><a href="Select_(Unix)" title="Select (Unix)"><span class="monospaced">select()</span></a>, <span class="monospaced">pselect()</span></li>
<li><a href="Poll_(Unix)" title="Poll (Unix)"><span class="monospaced">poll()</span></a>, <span class="monospaced">ppoll()</span></li>
<li><span class="monospaced">epoll_wait()</span>, <span class="monospaced">epoll_pwait()</span>, <span class="monospaced">epoll_pwait2()</span> (Linux, takes a single epoll filedescriptor to wait on many other file descriptors)</li>
<li><a href="Epoll" title="Epoll"><span class="monospaced">epoll_ctl()</span></a> (for Linux)</li>
<li><a href="Kqueue" title="Kqueue"><span class="monospaced">kqueue()</span></a> (for BSD-based systems).</li>
<li><span class="monospaced">sendfile()</span></li>
<li><a href="Splice_(system_call)" title="Splice (system call)"><span class="monospaced">splice()</span></a>, <span class="monospaced">tee()</span> (for Linux)</li>
<li><span class="monospaced">copy_file_range()</span> (for Linux)</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Operations_on_the_file_descriptor_table">Operations on the file descriptor table</h3></div>
<p>The <span class="monospaced">fcntl()</span> function is used to perform various operations on a file descriptor, depending on the command argument passed to it. There are commands to get and set attributes associated with a file descriptor, including <span class="monospaced">F_GETFD, F_SETFD, F_GETFL</span> and <span class="monospaced">F_SETFL</span>.
</p>
<ul><li><span class="monospaced"><a href="Close_(system_call)" title="Close (system call)">close()</a></span></li>
<li><span class="monospaced">closefrom()</span> (BSD and Solaris only; deletes all file descriptors greater than or equal to specified number)</li>
<li><span class="monospaced">close_range()</span> (for Linux)<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup></li>
<li><span class="monospaced"><a href="Dup_(system_call)" title="Dup (system call)">dup()</a></span> (duplicates an existing file descriptor guaranteeing to be the lowest number available file descriptor)</li>
<li><span class="monospaced"><a href="Dup2" class="mw-redirect" title="Dup2">dup2</a>()</span>, <span class="monospaced"><a href="Dup2" class="mw-redirect" title="Dup2">dup3()</a></span> (Close fd1 if necessary, and make file descriptor fd1 point to the open file of fd2)</li>
<li><span class="monospaced">fcntl (F_DUPFD)</span></li></ul>
<div class="mw-heading mw-heading3"><h3 id="Operations_that_modify_process_state">Operations that modify process state</h3></div>
<ul><li><span class="monospaced">fchdir()</span> (sets the process's current working directory based on a directory file descriptor)</li>
<li><span class="monospaced"><a href="Mmap" title="Mmap">mmap</a>()</span> (maps ranges of a file into the process's address space)</li></ul>
<div class="mw-heading mw-heading3"><h3 id="File_locking">File locking</h3></div>
<ul><li><span class="monospaced">flock()</span></li>
<li><span class="monospaced">fcntl() (F_GETLK, F_SETLK</span> and <span class="monospaced">F_SETLKW)</span></li>
<li><span class="monospaced">lockf()</span></li></ul>
<div class="mw-heading mw-heading3"><h3 id="Sockets">Sockets</h3></div>
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">See also: <a href="Berkeley_sockets" title="Berkeley sockets">Berkeley sockets</a></div>
<ul><li><span class="monospaced">connect()</span></li>
<li><span class="monospaced">bind()</span></li>
<li><span class="monospaced">listen()</span></li>
<li><span class="monospaced">accept()</span> (creates a new file descriptor for an incoming connection)</li>
<li><span class="monospaced">getsockname()</span></li>
<li><span class="monospaced">getpeername()</span></li>
<li><span class="monospaced">getsockopt()</span></li>
<li><span class="monospaced">setsockopt()</span></li>
<li><span class="monospaced">shutdown()</span> (shuts down one or both halves of a full duplex connection)</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Miscellaneous">Miscellaneous</h3></div>
<ul><li><a href="Ioctl" title="Ioctl"><span class="monospaced">ioctl()</span></a> (a large collection of miscellaneous operations on a single file descriptor, often associated with a device)</li></ul>
<div class="mw-heading mw-heading2"><h2 id="at_suffix_operations"><code>at</code> suffix operations</h2></div>
<p>A series of new operations has been added to many modern Unix-like systems, as well as numerous C libraries, to be standardized in a future version of <a href="POSIX" title="POSIX">POSIX</a>.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> The <code>at</code> suffix signifies that the function takes an additional first argument supplying a file descriptor from which <a href="Relative_path" class="mw-redirect" title="Relative path">relative paths</a> are resolved, the forms lacking the <code>at</code> suffix thus becoming equivalent to passing a file descriptor corresponding to the current <a href="Working_directory" title="Working directory">working directory</a>. The purpose of these new operations is to defend against a certain class of <a href="Time-of-check-to-time-of-use" class="mw-redirect" title="Time-of-check-to-time-of-use">TOCTOU</a> attacks.
</p>
<ul><li><span class="monospaced">openat()</span></li>
<li><span class="monospaced">faccessat()</span></li>
<li><span class="monospaced">fchmodat()</span></li>
<li><span class="monospaced">fchownat()</span></li>
<li><span class="monospaced">fstatat()</span></li>
<li><span class="monospaced">futimesat()</span></li>
<li><span class="monospaced">linkat()</span></li>
<li><span class="monospaced">mkdirat()</span></li>
<li><span class="monospaced">mknodat()</span></li>
<li><span class="monospaced">readlinkat()</span></li>
<li><span class="monospaced">renameat()</span></li>
<li><span class="monospaced">symlinkat()</span></li>
<li><span class="monospaced">unlinkat()</span></li>
<li><span class="monospaced">mkfifoat()</span></li>
<li><span class="monospaced">fdopendir()</span></li></ul>
<div class="mw-heading mw-heading2"><h2 id="File_descriptors_as_capabilities">File descriptors as capabilities</h2></div>
<p>Unix file descriptors behave in many ways as <a href="Capability-based_security" title="Capability-based security">capabilities</a>. They can be passed between processes across <a href="Unix_domain_socket" title="Unix domain socket">Unix domain sockets</a> using the <code>sendmsg()</code> system call. Note, however, that what is actually passed is a reference to an "open file description" that has mutable state (the file offset, and the file status and access flags). This complicates the secure use of file descriptors as capabilities, since when programs share access to the same open file description, they can interfere with each other's use of it by changing its offset or whether it is blocking or non-blocking, for example.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> In operating systems that are specifically designed as capability systems, there is very rarely any mutable state associated with a capability itself.
</p><p>A Unix process' file descriptor table is an example of a <a href="C-list_(computer_security)" title="C-list (computer security)">C-list</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Fuser_(Unix)" title="Fuser (Unix)">fuser (Unix)</a></li>
<li><a href="Lsof" title="Lsof">lsof</a></li>
<li><a href="File_Control_Block" title="File Control Block">File Control Block</a> (FCB) - an alternative scheme in CP/M and early versions of DOS</li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist reflist-columns references-column-width" style="column-width: 30em;">
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFThe_Open_Group" class="citation web cs1"><a href="The_Open_Group" title="The Open Group">The Open Group</a>. <a rel="nofollow" class="external text" href="http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/unistd.h.html">"The Open Group Base Specifications Issue 7, IEEE Std 1003.1-2008, 2016 Edition"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2017-09-21</span></span>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite id="CITEREFThe_Open_Group" class="citation web cs1">The Open Group. <a rel="nofollow" class="external text" href="http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/stdio.h.html">"The Open Group Base Specifications Issue 7, IEEE Std 1003.1-2008, 2016 Edition"</a>. <stdio.h><span class="reference-accessdate">. Retrieved <span class="nowrap">2017-09-21</span></span>.</cite></span>
</li>
<li id="cite_note-bach-3"><span class="mw-cite-backlink">^ <a href="#cite_ref-bach_3-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-bach_3-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFBach1986" class="citation book cs1">Bach, Maurice J. (1986). <span class="id-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="https://archive.org/details/designofunixoper00bach/page/92"><i>The Design of the UNIX Operating System</i></a></span> (8 ed.). <a href="Prentice-Hall" class="mw-redirect" title="Prentice-Hall">Prentice-Hall</a>. pp. <a rel="nofollow" class="external text" href="https://archive.org/details/designofunixoper00bach/page/92">92–96</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>9780132017992</bdi>.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://unix.stackexchange.com/questions/676683/what-does-the-output-of-ll-proc-self-fd-from-ll-dev-fd-mean">"Devices - What does the output of 'll /Proc/Self/Fd/' (From 'll /Dev/Fd') mean?"</a>.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite id="CITEREFThe_Open_Group" class="citation web cs1"><a href="The_Open_Group" title="The Open Group">The Open Group</a>. <a rel="nofollow" class="external text" href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/creat.html">"The Open Group Base Specifications Issue 7, IEEE Std 1003.1-2008, 2018 Edition – creat"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2019-04-11</span></span>.</cite></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite id="CITEREFStephen_Kitt,_Michael_Kerrisk" class="citation web cs1">Stephen Kitt, Michael Kerrisk. <a rel="nofollow" class="external text" href="https://man7.org/linux/man-pages/man2/close_range.2.html">"close_range(2) — Linux manual page"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2021-03-22</span></span>.</cite></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite class="citation book cs1"><span class="id-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="https://www2.opengroup.org/ogsys/catalog/c063"><i>Extended API Set, Part 2</i></a></span>. The Open Group. October 2006. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>1931624674</bdi>.</cite></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><cite id="CITEREFBrinkmann2009" class="citation web cs1">Brinkmann, Marcus (2009-02-04). <a rel="nofollow" class="external text" href="https://archive.today/20120730163337/http://www.eros-os.org/pipermail/cap-talk/2009-February/012137.html">"Building a bridge: library API's and file descriptors?"</a>. <i>cap-talk</i>. Archived from <a rel="nofollow" class="external text" href="http://www.eros-os.org/pipermail/cap-talk/2009-February/012137.html">the original</a> on 2012-07-30<span class="reference-accessdate">. Retrieved <span class="nowrap">2017-09-21</span></span>.</cite></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><cite id="CITEREFde_Boyne_Pollard2007" class="citation web cs1">de Boyne Pollard, Jonathan (2007). <a rel="nofollow" class="external text" href="http://jdebp.eu/FGA/dont-set-shared-file-descriptors-to-non-blocking-mode.html">"Don't set shared file descriptors to non-blocking I/O mode"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2017-09-21</span></span>.</cite></span>
</li>
</ol></div>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Object-capability_security187" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div id="Object-capability_security187" style="font-size:114%;margin:0 4em"><a href="Object-capability_model" title="Object-capability model">Object-capability</a> security</div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Concepts</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Principle_of_least_privilege" title="Principle of least privilege">Principle of least privilege</a> (PoLP)</li>
<li><a href="Confused_deputy_problem" title="Confused deputy problem">Confused deputy problem</a></li>
<li><a href="Ambient_authority" title="Ambient authority">Ambient authority</a></li>
<li><a href="C-list_(computer_security)" title="C-list (computer security)">C-list</a></li>
<li><a href="Object-capability_model" title="Object-capability model">Object-capability model</a></li>
<li><a href="Capability-based_security" title="Capability-based security">Capability-based security</a></li>
<li><a href="Capability-based_addressing" title="Capability-based addressing">Capability-based addressing</a></li>
<li><a href="Zooko's_triangle" title="Zooko's triangle">Zooko's triangle</a></li>
<li><a href="Petname" title="Petname">Petnames</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Operating_system" title="Operating system">Operating systems</a>,<br><a href="Kernel_(operating_system)" title="Kernel (operating system)">kernels</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Capsicum_(Unix)" title="Capsicum (Unix)">Capsicum</a></li>
<li><a href="Fuchsia_(operating_system)" title="Fuchsia (operating system)">Fuchsia</a></li>
<li><a href="Genode" title="Genode">Genode</a></li>
<li><a href="GNOSIS" title="GNOSIS">GNOSIS</a> → <a href="KeyKOS" title="KeyKOS">KeyKOS</a> → <a href="EROS_(microkernel)" title="EROS (microkernel)">EROS</a> → CapROS</li>
<li><a href="Hydra_(operating_system)" title="Hydra (operating system)">Hydra</a></li>
<li><a href="IMAX_432" title="IMAX 432">iMAX 432</a></li>
<li><a href="Midori_(operating_system)" title="Midori (operating system)">Midori</a></li>
<li><a href="NLTSS" title="NLTSS">NLTSS</a></li>
<li><a href="L4_microkernel_family#High_assurance:_seL4" title="L4 microkernel family">seL4</a></li>
<li><a href="HarmonyOS" title="HarmonyOS">HarmonyOS</a> (<a href="HarmonyOS_NEXT" title="HarmonyOS NEXT">HarmonyOS NEXT</a>)</li>
<li><a href="Phantom_OS" title="Phantom OS">Phantom OS</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Programming_language" title="Programming language">Programming languages</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Caja_project" title="Caja project">Caja–Cajita</a></li>
<li><a href="E_(programming_language)" title="E (programming language)">E</a></li>
<li><a href="Joe-E" title="Joe-E">Joe-E</a></li>
<li><a href="Joule_(programming_language)" title="Joule (programming language)">Joule</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="File_system" title="File system">File systems</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Tahoe-LAFS" title="Tahoe-LAFS">Tahoe-LAFS</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Specialised hardware</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="BiiN" title="BiiN">BiiN</a></li>
<li><a href="CAP_computer" title="CAP computer">Cambridge CAP</a></li>
<li><a href="Flex_machine" title="Flex machine">Flex</a></li>
<li><a href="IBM_System/38" title="IBM System/38">IBM System/38</a></li>
<li><a href="Intel_iAPX_432" title="Intel iAPX 432">Intel iAPX 432</a></li>
<li><a href="Plessey_System_250" title="Plessey System 250">Plessey System 250</a></li>
<li><a href="Capability_Hardware_Enhanced_RISC_Instructions" title="Capability Hardware Enhanced RISC Instructions">CHERI</a></li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"></div><div role="navigation" class="navbox" aria-labelledby="Computer_files91" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Computer_files91" style="font-size:114%;margin:0 4em"><a href="Computer_file" title="Computer file">Computer files</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Types</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Binary_file" title="Binary file">Binary file</a> / <a href="Text_file" title="Text file">text file</a></li>
<li><a href="Data_file" title="Data file">Data file</a></li>
<li><a href="File_format" title="File format">File format</a>
<ul><li><a href="List_of_file_formats" title="List of file formats">List of file formats</a></li>
<li><a href="List_of_file_signatures" title="List of file signatures">File signatures</a></li>
<li><a href="Magic_number_(programming)" title="Magic number (programming)">Magic number</a></li>
<li><a href="Open_file_format" title="Open file format">Open file formats</a></li>
<li><a href="Proprietary_file_format" title="Proprietary file format">Proprietary file formats</a></li></ul></li>
<li><a href="Metafile" class="mw-redirect" title="Metafile">Metafile</a></li>
<li><a href="Sidecar_file" title="Sidecar file">Sidecar file</a></li>
<li><a href="Sparse_file" title="Sparse file">Sparse file</a></li>
<li><a href="Swap_file" class="mw-redirect" title="Swap file">Swap file</a></li>
<li><a href="System_file" title="System file">System file</a></li>
<li><a href="Temporary_file" title="Temporary file">Temporary file</a></li>
<li><a href="Zero-byte_file" title="Zero-byte file">Zero-byte file</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Properties</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Filename" title="Filename">Filename</a>
<ul><li><a href="8.3_filename" title="8.3 filename">8.3 filename</a></li>
<li><a href="Long_filename" title="Long filename">Long filename</a></li>
<li><a href="Filename_mangling" title="Filename mangling">Filename mangling</a></li></ul></li>
<li><a href="Filename_extension" title="Filename extension">Filename extension</a>
<ul><li><a href="List_of_filename_extensions" title="List of filename extensions">List of filename extensions</a></li></ul></li>
<li><a href="File_attribute" title="File attribute">File attribute</a>
<ul><li><a href="Extended_file_attributes" title="Extended file attributes">Extended file attributes</a></li></ul></li>
<li><a href="File_size" title="File size">File size</a></li>
<li><a href="Hidden_file_and_hidden_directory" title="Hidden file and hidden directory">Hidden file / Hidden directory</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Organisation</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Directory_(computing)" title="Directory (computing)">Directory/folder</a>
<ul><li><a href="NTFS_links" title="NTFS links">NTFS links</a></li>
<li><a href="Temporary_folder" title="Temporary folder">Temporary folder</a></li></ul></li>
<li><a href="Directory_structure" title="Directory structure">Directory structure</a></li>
<li><a href="File_system" title="File system">File system</a>
<ul><li><a href="Filesystem_Hierarchy_Standard" title="Filesystem Hierarchy Standard">Filesystem Hierarchy Standard</a></li>
<li><a href="Grid_file_system" title="Grid file system">Grid file system</a></li>
<li><a href="Semantic_file_system" title="Semantic file system">Semantic file system</a></li></ul></li>
<li><a href="Path_(computing)" title="Path (computing)">Path</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="File_operation" class="mw-redirect" title="File operation">Operations</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Open_(system_call)" title="Open (system call)">Open</a></li>
<li><a href="Close_(system_call)" title="Close (system call)">Close</a></li>
<li><a href="Read_(system_call)" title="Read (system call)">Read</a></li>
<li><a href="Write_(system_call)" title="Write (system call)">Write</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Linking</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul>
<li><a href="Hard_link" title="Hard link">Hard link</a></li>
<li><a href="Shortcut_(computing)" title="Shortcut (computing)">Shortcut</a>
<ul><li><a href="Alias_(Mac_OS)" title="Alias (Mac OS)">Alias</a></li>
<li><a href="Shadow_(OS/2)" title="Shadow (OS/2)">Shadow</a></li></ul></li>
<li><a href="Symbolic_link" title="Symbolic link">Symbolic link</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Management</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Backup" title="Backup">Backup</a></li>
<li><a href="File_comparison" title="File comparison">File comparison</a></li>
<li><a href="File_copying" title="File copying">File copying</a></li>
<li><a href="Data_compression" title="Data compression">Data compression</a></li>
<li><a href="File_manager" title="File manager">File manager</a>
<ul><li><a href="Comparison_of_file_managers" title="Comparison of file managers">Comparison of file managers</a></li></ul></li>
<li><a href="File_system_fragmentation" title="File system fragmentation">File system fragmentation</a></li>
<li><a href="File-system_permissions" title="File-system permissions">File-system permissions</a></li>
<li><a href="File_transfer" title="File transfer">File transfer</a>
<ul><li><a href="File_sharing" title="File sharing">File sharing</a></li>
<li><a href="File_synchronization" title="File synchronization">File synchronization</a></li></ul></li>
<li><a href="File_verification" title="File verification">File verification</a></li></ul>
</div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-04-12" href="https://en.wikipedia.org/wiki/?title=File_descriptor&oldid=1285313951">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>